import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

/**
 * @Title: Nine_3171_找到按位或最接近K的子数组
 * @Author 贾金博
 * @Package PACKAGE_NAME
 * @Date 2024/10/9 上午10:13
 * @description: 每日一题
 */
public class Nine_3171_找到按位或最接近K的子数组 {

    public int minimumDifference(int[] nums, int k) {
        // 前缀异或和
        int n = nums.length;
        int[] dp = new int[n];
        dp[0] = nums[0];
        for(int i = 1; i < nums.length; i ++ ) {
            dp[i] = dp[i - 1] | nums[i];
            if(nums[i] == k) {
                return 0;
            }
        }
        int ret = Integer.MAX_VALUE; // 先假设为最大的
       for(int i = 0; i < n; i ++ ) {
           for(int j = 0; j < i; j ++ ) {
               ret = Math.min(ret, dp[j] | dp[i]);
               if(ret == 0) {
                   return 0;
               }
           }
       }
        return ret;
    }

    public static void main(String[] args) {

        }

}
